package com.bnd.service;

import com.alibaba.dashscope.common.Message;
import com.bnd.domain.ChatHistory;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bnd.domain.vo.ChatHistoryVO;

import java.util.List;

/**
 * 聊天历史服务接口
 * @author 20668
 * @description 针对表【chat_history】的数据库操作Service
 * @createDate 2025-09-22 22:12:28
 */
public interface ChatHistoryService extends IService<ChatHistory> {

    /**
     * 批量保存聊天历史记录
     * @param chatId 聊天会话ID
     * @param characterId 角色ID
     * @param messageList 消息列表
     */
    void batchSaveChatHistory(String chatId, Long characterId, List<Message> messageList);

    /**
     * 根据角色ID查询聊天历史记录
     * @param characterId 角色ID
     * @return 聊天历史记录列表
     */
    List<ChatHistory> listByCharacterId(Long characterId);

    /**
     * 根据角色ID删除聊天历史记录
     * @param characterId 角色ID
     */
    void removeByCharacterId(Long characterId);

    /**
     * 获取每个角色的第一条聊天记录
     * @param keyword 关键词
     * @return 角色列表
     */
    List<ChatHistoryVO> selectFirstChatByCharacter(String keyword);

    /**
     * 清除聊天历史缓存
     * @param characterId 角色ID
     */
    void clearChatHistoryCache(Long characterId);
}
